SHIFT
DOS에서 배치 프로그램을 실행할 때 %0∼%9의 10개의 매개변수를 사용한다. 그러나 교체할 매개변수가 10개를 초과하는 경우에는 이를 한번에 지정할 수 없다. 이를 위해 DOS에서는 배치 프로그램에서 10개 이상의 매개변수를 사용할 수 있도록 SHIFT 명령어를 제공한다.
이 명령어는 배치 파일 내에 있는 교체할 수 있는 매개변수의 위치를 앞으로 이동하기 위해 사용한다.
■ 사용법
SHIFT
■ 사용상의 주의
☞ SHIFT 명령어의 작동 방법
SHIFT 명령어는 각 매개변수를 선행자에 복사함으로써 %0에서 %9까지 교체 가능한 매개변수의 값을 변경한다.
즉, %1의 값은 %0에 복사되고, %2의 값은 %1에 복사되는 식으로 계속된다. 이것은 매개변수의 모든 번호에서 같은 작업을 수행하는 배치 프로그램을 작성하는데 유용하다.
☞ 10개 이상의 매개변수 사용하기
사용자가 10개 이상의 매개변수를 받아들이는 배치 프로그램을 작성하는데 있어 SHIFT 명령어는 매우 유용하게 사용된다.
만약, 사용자가 10개 이상의 매개변수를 명령어 라인에 지정한 경우 11번째에 지정한 매개변수는 SHIFT 명령어를 한번 실행할 때마다 %9로 전환될 것이다.
☞ SHIFT 매개변수의 되돌리기
직전에 사용한 매개변수를 다시 사용할 수는 없다. 즉, 매개변수 중에서 한번 SHIFT된 경우 첫 번째 매개변수를 메모리에서 삭제하기 때문에 이를 다시 사용할 수 없다.
■ 사용 예
다음 예에서의 배치 프로그램은 SHIFT 명령어를 매개변수의 모든 번호에 사용하는 방법을 보여준다. 이것은 파일 목록을 특정한 디렉토리에 복사한다. 매개변수는 그 디렉토리의 이름과 그 다음에 오는 파일명의 모든 번호이다.
@echo off
rem USERCOPY.BAT copies any number of files
rem to a directory
rem The command uses the following syntax:
rem usercopy dir file1 file2 . . . . .
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done.